iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 17
0
Modern Web

我的30天MVC從零到不知道多少學習筆記系列 第 17

從零開始的MVC開發-View對Controller的回應-ModelBinding(3)

  • 分享至 

  • xImage
  •  

前一篇講了傳回FormCollection的Model Bindind方法
傳回的FormCollection類別,屬於弱型別,其實在開發上還是比較不方便的
所以MVC也能讓你回傳Model的類別!!
這次就來寫寫吧~
假設我們的Model長這樣

public class People
{
    public string Name{get;set;}
    public int height{get;set;}
}

然後Action我們需要兩個
一個呈現資料,一個接收回傳資料
先寫讓View呈現資料的方式!

public ActionResult PeopleModelBinding()
{
    //我們塞個資料讓View呈現
    People people=new People(){
				Name="Tom",
				Height=180
			};
    return View(people);
}

然後收到後,再用ViewBag傳回去,顯示到view

[HttpPost]
public ActionResult Index(People people){
//接收的型態直接是Model class,所以就使用Model的讀取方式!
    ViewBag.Name=people.Name;
    ViewBag.Height=people.Height;
    return View();
}

最重要的View的寫法,我們使用Html Helper幫我們產生input框
並且裡面會先幫我們填入model的內容

@model DemoApp.People
<div>
@using(Html.BeginForm())
{
    <p>
        姓名:
        @Html.EditorFor(c=>c.Name)
    </p>	
    <p>
        身高:
        @Html.EditorFor(c=>c.Height)
    </p>
    <p>
		<input type="submit" value="送出">
	</p>
}
</div>
@ViewBag.Name
@ViewBag.Height

這樣就完成啦~
想看這段簡單程式執行的結果,可以到這邊看看
https://dotnetfiddle.net/ARXpzx
程式執行的過程大概就是

  1. 由controller傳值給view顯示
  2. View修改送出後送回controller
  3. controller接收後再以viewBag方式傳回View
  4. 最後View就會顯示ViewBag的值

如果要讓view不接收任何Model,
然後還想傳回Model的話也可以!~
這我們明天再說~~

一不小心打太久了~
今天12/31 祝大家跨年順利~
我要出門跨年啦 大家掰掰~~~


上一篇
從零開始的MVC開發-View對Controller的回應-ModelBinding(2)
下一篇
從零開始的MVC開發-View對Controller的回應-ModelBinding(4)
系列文
我的30天MVC從零到不知道多少學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言